﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using DAL.Classes;
using DAL.Help;
using DAL.Connect;
using System.IO;

public partial class CapNhatThongTinBaiDang : System.Web.UI.Page
{
    string albumImagesID = "";

    private int KiemTraKetQua(string abImagesID)
    {
        int kq = 0;
        if (Session["MaTaiKhoan"] == "" && Session["QuyenHan"].ToString() == "")
            kq = 0;
        else
        {
            if (abImagesID == "")
                kq = 1;
            else
            {
                BaiDang alb = BaiDang.LayMaTaiKhoanTheoBaiDang(abImagesID);
                if (alb != null)
                {
                    int accountID = ConvertType.ToInt32(alb.MaTaiKhoan.ToString());
                    if (accountID.CompareTo(Session["MaTaiKhoan"]) == 0)
                        kq = 2;
                    else
                        kq = 1;
                }
                else
                    kq = 1;
            }
        }
        return kq;
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        albumImagesID = Request.QueryString["BaiDangID"] ?? "";
        int Kq = KiemTraKetQua(albumImagesID);
        switch (Kq)
        {
            case 0:
                Response.Redirect("~/DangNhap.aspx");
                break;
            case 1:
                Response.Redirect("~/TrangCaNhan.aspx?TaiKhoanID=" + Session["MaTaiKhoan"]);
                break;
            case 2:
                if (!IsPostBack)
                    PopulateControls();
                break;
        }
    }

    private void LoadListImages(string albumImagesID)
    {
        int howManyPages = 0;
        string page = Request.QueryString["Trang"] ?? "1";
        string firstPageUrl = "";
        string pagerFormat = "";
        dlImageList.DataSource = ThongTinBaiDang.LayThongTinBaiDangTheoMaBaiDang_PT(albumImagesID, page, out howManyPages);
        dlImageList.DataBind();
        //Paging
        firstPageUrl = Link.DenCapNhatThongTinBaiDang(albumImagesID);
        pagerFormat = Link.DenCapNhatThongTinBaiDang(albumImagesID, "{0}");
        PagerBottom.Show(int.Parse(page), howManyPages, firstPageUrl, pagerFormat, true);
    }

    private void PopulateControls()
    {
        BaiDang data = BaiDang.LayTheoMa(albumImagesID);
        if (data != null)
        {
            Img.ImageUrl = String.Format("HinhAnh/{0}", data.NoiDung);
            txtTenBaiDang.Text = data.TenBaiDang;
            txtMoTa.Text = data.MoTa;
            lbNgayTao.Text = "Ngày tạo: " + data.NgayTao.ToShortDateString() + " ";
            lbThoiGian.Text = "Thời gian: " + data.NgayTao.ToShortTimeString();
            //Load danh sach anh cho album
            LoadListImages(albumImagesID);
        }
    }

    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        btnUpload.Click += new EventHandler(btnUpload_Click);
    }

    bool CheckFileType(string fileName)
    {
        string ext = Path.GetExtension(fileName);
        switch (ext.ToLower())
        {
            case ".gif":
                return true;
            case ".png":
                return true;
            case ".jpg":
                return true;
            case ".jpeg":
                return true;
            default:
                return false;
        }
    }

    void btnUpload_Click(object sender, EventArgs e)
    {
        try
        {
            // Kiem tra co file upload va kich thuoc file <= 500KB 
            if (upImage.HasFile && upImage.PostedFile.ContentLength <= 500000)
            {
                if (upImage.PostedFile.ContentLength <= 500000)
                {
                    // Kiem tra loai file 
                    if (CheckFileType(upImage.FileName))
                    {
                        // Lay duong dan tuong doi o server 
                        String filePath = "~/HinhAnh/" + upImage.FileName;
                        //txtPath.Text = upImage.FileName;
                        // Luu vao duong dan o tren 
                        // MapPath(filePath) ==> chuyen ve duong dan tuyet doi 
                        upImage.SaveAs(MapPath(filePath));
                        ThongTinBaiDang data = new ThongTinBaiDang();
                        data.MaBaiDang = Convert.ToInt32(albumImagesID);
                        data.HinhAnh = upImage.FileName;
                        data.MoTa = "";
                        bool rs = ThongTinBaiDang.Them(data);
                        //Upload thành công!;
                        //Load danh sach anh cho album
                        if (rs)
                            lblStatus.Text = "Đã thêm thành công!";
                        else
                            lblStatus.Text = "Thêm không thành công!";
                        LoadListImages(albumImagesID);
                    }
                }
                else
                    lblStatus.Text = "Kích thước file không được hơn 500KB!";
            }
            else
            {
                lblStatus.Text = "Bạn cần vui lòng chọn ảnh!";
            }
        }

        catch (Exception)
        {
            lblStatus.Text = "Thêm ảnh không thành công!";
        }
    }

    protected void btnDelete_Click(object sender, EventArgs e)
    {
        bool rs = false;
        rs = BaiDang.Xoa(albumImagesID);
        if (rs)
            Response.Redirect("~/TrangCaNhan.aspx?TaiKhoanID=" + Session["MaTaiKhoan"]);
        else
        {
            lbThongBao.Visible = true;
            lbThongBao.Text = "Không thể xóa được album!";
        }
    }
    
    protected void btnLuu_Click(object sender, EventArgs e)
    {
        string tenBaiDang = txtTenBaiDang.Text;
        string moTa = txtMoTa.Text;
        if (tenBaiDang == "")
            tenBaiDang = "Chưa đặt tên";
        if(moTa == "")
            moTa = "Chưa có mô tả";
        bool rs = false;
        BaiDang data = new BaiDang();
        data.MaBaiDang = Convert.ToInt32(albumImagesID);
        data.TenBaiDang = tenBaiDang;
        data.MoTa = moTa;
        rs = BaiDang.Sua(data);
        if (rs)
            Response.Redirect("~/TrangCaNhan.aspx?TaiKhoanID=" + Session["MaTaiKhoan"]);
        else
        {
            lbThongBao.Visible = true;
            lbThongBao.Text = "Không thể lưu được album!";
        }
    }

    protected void btnXoaHinhAnh_Click(object sender, EventArgs e)
    {
        string stringid = Request.Form["cid"] ?? "";
        if (stringid != "")
        {
            foreach (string id in stringid.Split(','))
                ThongTinBaiDang.Xoa(id);
            PopulateControls();
        }
    }
}
